//
//  Problem628.swift
//  LeetCode
//
//  Created by 武侠 on 2023/6/21.
//  Copyright © 2023 zhulongiMac02. All rights reserved.
//

import UIKit

/*
 628. 三个数的最大乘积 简单
 给你一个整型数组 nums ，在数组中找出由三个数组成的最大乘积，并输出这个乘积。

 示例 1：
     输入：nums = [1,2,3]
     输出：6
 示例 2：
     输入：nums = [1,2,3,4]
     输出：24
 示例 3：
     输入：nums = [-1,-2,-3]
     输出：-6
  
 提示：
     3 <= nums.length <= 104
     -1000 <= nums[i] <= 1000
 */
class Problem628: NSObject {
    
    func maximumProduct(_ nums: [Int]) -> Int {
        if nums.count == 3 {
            return nums[0] * nums[1] * nums[2]
        }
        let sorts = nums.sorted()
        
        return max(sorts[sorts.count-1] * sorts[sorts.count-2] * sorts[sorts.count-3], sorts[0] * sorts[1] * sorts[sorts.count-1])
    }
}
